﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace sy5_4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Text = "旋转文字"; //
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                // 1. 清空PictureBox之前的绘制
                pictureBox1.Refresh();

                // 2. 获取PictureBox的画布（Graphics对象）
                Graphics g = pictureBox1.CreateGraphics();
                // 抗锯齿，让文字更平滑
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

                // 3. 初始化字体（Arial Black，字号10）
                Font f = new Font("Arial Black", 10);
                // 初始化画刷（蓝色）
                SolidBrush sb = new SolidBrush(Color.Blue);

                // 4. 计算PictureBox的中心坐标（作为旋转中心）
                int w = pictureBox1.ClientSize.Width / 2;
                int h = pictureBox1.ClientSize.Height / 2;
                // 将坐标系平移到PictureBox中心
                g.TranslateTransform(w, h);

                // 5. 随机数对象（用于生成随机颜色）
                Random ran = new Random();

                // 6. 获取输入的旋转次数
                int n = int.Parse(textBox1.Text);

                // 7. 循环绘制旋转文字
                for (int i = 0; i < n; i++)
                {
                    // 生成随机颜色（ARGB，Alpha=255不透明）
                    sb.Color = Color.FromArgb(255, ran.Next(256), ran.Next(256), ran.Next(256));

                    // 绘制文字（"Hello World!"，位置(0,-5)）
                    g.DrawString("Hello World!", f, sb, 0, -5);

                    // 旋转坐标系：每次旋转 360/n 度（实现均匀分布）
                    g.RotateTransform(360.0f / n);
                }

                // 8. 释放资源（避免内存泄漏）
                f.Dispose();
                sb.Dispose();
                g.Dispose();
            }
            catch (Exception ex)
            {
                // 捕获输入错误（如非数字）
                MessageBox.Show($"输入错误：{ex.Message}", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
    }
}
